package com.rchat.pocmini.activity.creategroup;

import com.aso.common.http.delegate.HttpCallbackImpl;
import com.rchat.pocmini.common.mvp.BaseModel;
import com.rchat.pocmini.common.mvp.BasePresenter;
import com.rchat.pocmini.common.mvp.BaseView;

/**
 * Created by ljd on 2017/7/28.
 */

public interface CreateGroupContract {

    interface View extends BaseView {
        /**
         * 设置注册进度条的可见状态
         *
         * @param visibility 可见状态
         */
        void setProcessBarVisibility(int visibility);

        /**
         * 群组创建成功后的弹窗提示
         */
        void showCreateGroupSuccessDialog();

        /**
         * 根据当前群组数量刷新Vip引导面板
         *
         * @param groupsNum
         */
        void updateVipGuide(int groupsNum);

    }

    abstract class Presenter extends BasePresenter<CreateGroupContract.View, CreateGroupContract.Model> {

        /**
         * 创建群组
         *
         * @param userName  用户名
         * @param groupName 要创建的群组名
         */
        abstract void createGroup(String userName, String groupName);

        /**
         * 可否执行后退
         *
         * @return
         */
        abstract boolean isCanBack();
    }

    interface Model extends BaseModel {

        /**
         * 执行创建群组接口请求
         *
         * @param userName  用户名
         * @param groupName 要创建的群组名
         * @param callback  请求回调
         */
        void createGroup(String userName, String groupName, HttpCallbackImpl callback);

        /**
         * 获取账号状态信息
         *
         * @param userName
         * @param callback
         */
        void requestAccountStatus(String userName, HttpCallbackImpl callback);

    }

}
